﻿
using System.Windows.Forms;

namespace OpenNETCF
{
    public abstract class CompatibleDecodeControl : TextBox, IDecodeControl
    {
        public event DecodeEventHandler DecodeEvent;

        public void RaiseDecodeEvent(DecodeEventArgs args)
        {
            var handler = DecodeEvent;
            if (handler == null) return;
            handler(this, args);
        }

        public abstract int AimerTimeout { get; set; }
        public abstract bool AimIDDisplay { get; set; }
        public abstract bool AutoLEDs { get; set; }
        public abstract bool AutoScan { get; set; }
        public abstract bool CodeIDDisplay { get; set; }
        public abstract bool ModifierDisplay { get; set; }
        public abstract TriggerKeyEnum TriggerKey { get; set; }

        public abstract AudioDevice AudioMode { get; set; }
        public abstract bool AutoSounds { get; set; }
        public abstract bool ContinuousScan { get; set; }
        public abstract int DecodeAttemptLimit { get; set; }
        public abstract DecodeMode DecodeMode { get; set; }
        public abstract ScanLightsMode LightsMode { get; set; }
        public abstract int LinearRange { get; set; }
        public abstract int PrintWeight { get; set; }
        public abstract int ScanTimeout { get; set; }
        public abstract int SearchTimeLimit { get; set; }
        public abstract bool TraceMode { get; set; }
        public abstract bool VideoReverse { get; set; }
        public abstract bool VirtualKeyMode { get; set; }
        public abstract VirtualKeyTermEnum VirtualKeyTerm { get; set; }

        public abstract void CancelScanBarcode();
        public abstract void Clear();
        public abstract void ScanBarcode();
        public abstract void ScanBarcode(bool bNonBlocking);
        public abstract bool TriggerKeyIsDown();
        public abstract void Connect();
        public abstract void Disconnect();
        public abstract void EnableSymbology(SymID sym, bool enable);
    }
}
